﻿namespace GlobalStringFormatter
{
    public interface IGString<TFormatter, TType>
    {
        /// <summary>
        /// The FormatterSystem attached to this global string.
        /// </summary>
        FormatterSystem<TType> Formatters { get; set; }

        /// <summary>
        /// Any class-object. Usually a value-type like double, int, or string.
        /// </summary>
        TType Value { get; set; }

        /// <summary>
        /// Outputs the conditionalized formatted string representation of the raw value.
        /// </summary>
        /// <returns>Formatted string.</returns>
        string ToString();
    }
}
